#if !defined(_FORMAT_H_)
#define _FORMAT_H_

#include <string>
#include <boost/shared_ptr.hpp>
#include <time.h>

class format
{
    public:
    
	format(const std::string &_init);
	format(const format &_cp);
	
	std::string str();
	
	format arg(const std::string &_arg);
	format arg(const std::string &_arg1,const std::string &_arg2);
	format arg(const std::string &_arg1, const std::string &_arg2, const std::string &_arg3);
	format arg(const std::string &_arg1, const std::string &_arg2, const std::string &_arg3, const std::string &_arg4);
	
	format num(int _arg);
	format time(time_t arg);
	
    protected:	
    
	void replace_perc(std::string &_buffer, int _num, const std::string &_str);
	
	boost::shared_ptr<std::string> m_str;
	
	int m_pnum;
};

#endif // _FORMAT_H_

